package com.mark.controller;


import com.mark.entity.school.UClass;
import com.mark.service.UClassService;
import com.mark.utils.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.ClassUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * (UClass)表控制层
 *
 * @author Deng PengFei
 * @since 2021-10-27 11:16:56
 */
@CrossOrigin(allowedHeaders = "*")
@RestController
@RequestMapping("classes")
public class UClassController {

    @Autowired
    private UClassService uClassService;


    /**
     * 获取所有班级列表
     *
     * @return 对象列表
     */
    @GetMapping("getClassList")
    public List<UClass> getClassList() {
        return this.uClassService.getClassList();
    }

    /**
     * 增加一个新的班级
     *
     * @param newCla 新的班级对象
     * @return 1001 成功 ，1002 班级已存在 ，1003失败
     */
    @PostMapping("addCla")
    public Integer addCla(UClass newCla) {
        return this.uClassService.addCla(newCla);
    }


    /**
     * 修改数据
     *
     * @param uClass 实例对象
     * @return 实例对象 修改后的新对象
     */
    @PostMapping("updateCla")
    public UClass update(UClass uClass) {
        return this.uClassService.update(uClass);
    }

    /**
     * 通过班级Id删除班级
     *
     * @param claId 班级Id
     * @return true 成功 false 失败
     */
    @GetMapping("delClaByClaId")
    public Boolean delClaByClaId(Integer claId) {
        return this.uClassService.deleteByClaId(claId);
    }


    /**
     * 批量导入班级信息
     *
     * @param file 导入的excl文件
     * @return true 成功  false 失败
     */
    @PostMapping("importClaList")
    public Boolean importClaList(MultipartFile file) {
        Boolean flag;
        String fileName = file.getOriginalFilename(); // 获取文件名
        String savePath = ClassUtils.getDefaultClassLoader().getResource("").getPath(); // 获取保存路径
        try {
            File saveFile = new File(savePath + "/static/importFile/" + fileName);
            if (saveFile.exists()) {
                saveFile.delete();
            }
            file.transferTo(saveFile); //保存文件
            ArrayList<ArrayList<String>> excelList = FileUtil.readExcel(saveFile);
            flag =this.uClassService.importClaList(excelList);
        } catch (IOException e) {
            e.printStackTrace();
            return false;
        }
        return flag;
    }


}